Chrome 138 बीटा

पब्लिश किया गया: 28 मई, 2025

अगर कुछ और नहीं बताया गया है, तो यहां बताए गए बदलाव, Android, ChromeOS, Linux, macOS, और Windows के लिए, Chrome के बीटा चैनल की नई रिलीज़ पर लागू होंगे. यहां दी गई सुविधाओं के बारे में ज़्यादा जानने के लिए, दिए गए लिंक पर जाएं या ChromeStatus.com पर दी गई सूची देखें. 28 मई, 2025 तक Chrome 138 बीटा वर्शन है. डेस्कटॉप के लिए Google.com या Android के लिए Google Play Store से, नया वर्शन डाउनलोड किया जा सकता है.

सीएसएस और यूज़र इंटरफ़ेस (यूआई)

इस रिलीज़ में, सीएसएस और यूज़र इंटरफ़ेस (यूआई) की छह नई सुविधाएं जोड़ी गई हैं.

सीएसएस stretch साइज़िंग कीवर्ड

सीएसएस साइज़िंग प्रॉपर्टी (उदाहरण के लिए, width और height) के लिए एक कीवर्ड, जो एलिमेंट को अपने ब्लॉक के उपलब्ध स्पेस को पूरी तरह से भरने के लिए बड़ा करने की अनुमति देता है. यह 100% की तरह ही है. हालांकि, इसका साइज़ box-sizing से दिखाए गए बॉक्स के बजाय, एलिमेंट के मार्जिन बॉक्स पर लागू होता है. इस कीवर्ड का इस्तेमाल करने से, एलिमेंट को ज़्यादा से ज़्यादा बड़ा रखने के साथ-साथ, उसके मार्जिन भी बनाए रखने में मदद मिलती है.

साइन से जुड़े फ़ंक्शन abs() और sign(), अपने आर्ग्युमेंट के साइन से जुड़े अलग-अलग फ़ंक्शन का हिसाब लगाते हैं.

ओएस-लेवल के फ़ॉन्ट स्केल के लिए सीएसएस एनवायरमेंट वैरिएबल

यह सीएसएस को उपयोगकर्ता के पसंदीदा फ़ॉन्ट स्केल को दिखाता है. फ़िलहाल, किसी पेज के लिए यह पता लगाना मुमकिन नहीं है कि उपयोगकर्ता ने ऑपरेटिंग सिस्टम की सेटिंग में जाकर, अपने पसंदीदा फ़ॉन्ट का साइज़ बदला है या नहीं. सीएसएस एनवायरमेंट वैरिएबल से, उपयोगकर्ता के चुने गए स्केल की जानकारी मिलेगी.

सीएसएस sibling-index() और sibling-count()

sibling-index() और sibling-count() फ़ंक्शन का इस्तेमाल, सीएसएस प्रॉपर्टी की वैल्यू में पूर्णांक के तौर पर किया जा सकता है. इससे, एलिमेंट को उसके भाई-बहनों की स्थिति या कुल संख्या के आधार पर स्टाइल किया जा सकता है. इन फ़ंक्शन का इस्तेमाल, सीधे तौर पर पूर्णांक वैल्यू के तौर पर किया जा सकता है. हालांकि, calc() एक्सप्रेशन में इनका इस्तेमाल करना ज़्यादा दिलचस्प होता है.

li {
  animation-delay: calc(0.1s * sibling-index());
}

इंटरपोलेशन प्रोग्रेस फ़ंक्शन नोटेशन: सीएसएस progress() फ़ंक्शन

progress() फ़ंक्शनल नोटेशन एक मैथ फ़ंक्शन है, जो एक वैल्यू (प्रगति की वैल्यू) दिखाने वाली <number> वैल्यू दिखाता है. यह वैल्यू, दो अन्य वैल्यू (प्रगति की शुरुआत की वैल्यू और प्रगति की आखिरी वैल्यू) के बीच की स्थिति दिखाती है.

Viewport Segments Enumeration API

व्यूपोर्ट सेगमेंट एपीआई की मदद से, डेवलपर अपने वेब लेआउट को फ़ोल्ड किए जा सकने वाले डिवाइसों को टारगेट करने के लिए अडैप्ट कर सकते हैं. व्यूपोर्ट सेगमेंट, व्यूपोर्ट के अलग-अलग हिस्से की जगह और डाइमेंशन तय करते हैं. व्यूपोर्ट सेगमेंट तब बनाए जाते हैं, जब व्यूपोर्ट को एक या उससे ज़्यादा हार्डवेयर सुविधाओं (जैसे, अलग-अलग डिसप्ले के बीच फ़ोल्ड या हिंज) से बांटा जाता है, जो डिवाइडर के तौर पर काम करती हैं. सेगमेंट, व्यूपोर्ट के ऐसे हिस्से होते हैं जिन्हें डेवलपर, लॉजिक के हिसाब से अलग-अलग मान सकता है.

वेब एपीआई

WebCodecs में वीडियो फ़्रेम ओरिएंटेशन मेटाडेटा के लिए सहायता जोड़ना

WebCodecs में, वीडियो से जुड़े अलग-अलग इंटरफ़ेस में rotation: int और flip: bool वैल्यू जोड़ी गई हैं, ताकि डेवलपर ऐसे फ़्रेम सोर्स के साथ काम कर सकें जिनका ओरिएंटेशन (उदाहरण के लिए, Android कैमरे और कुछ मीडिया) होता है. VideoFrame इंटरफ़ेस की मदद से, मनमुताबिक रोटेशन और फ़्लिप के साथ वीडियो फ़्रेम बनाए जा सकते हैं. साथ ही, VideoFrame ऑब्जेक्ट पर इस जानकारी के लिए ऐक्सेस करने वाले एलिमेंट भी बनाए जा सकते हैं. VideoDecoderConfig ऑब्जेक्ट में rotation और flip फ़ील्ड जुड़ जाते हैं. ये फ़ील्ड, डिकोड किए गए VideoFrame ऑब्जेक्ट पर अपने-आप जनरेट होते हैं. VideoEncoder क्लास, रोटेशन को पास करने का तरीका इस्तेमाल करती है. साथ ही, EncodedVideoChunkMetadata के हिसाब से उत्सर्जित होने वाली जानकारी को encode() से VideoDecoderConfig में बदल देती है. अगर encode() को अलग-अलग ओरिएंटेशन वाले फ़्रेम के साथ कॉल किया जाता है, तो गैर-घातक अपवाद को फेंक दिया जाएगा. configure() तरीके का इस्तेमाल करके, अनुमति वाले ओरिएंटेशन को रीसेट किया जा सकता है.

Crash Reporting API: is_top_level और visibility_state

यह सुविधा, क्रैश रिपोर्टिंग एपीआई बॉडी में is_top_level और visibility_state स्ट्रिंग फ़ील्ड जोड़ती है. यह बॉडी, क्रैश रिपोर्ट के लिए डिफ़ॉल्ट रिपोर्टिंग एंडपॉइंट पर भेजा जाता है.

सीरियलाइज़ेशन के दौरान, एट्रिब्यूट में < और > को एस्केप करना

सीरियलाइज़ेशन के दौरान, एट्रिब्यूट की वैल्यू में < और > को एस्केप करें. इससे, म्यूटेशन एक्सएसएस अटैक का जोखिम कम हो जाता है. ये अटैक तब होते हैं, जब किसी एट्रिब्यूट की वैल्यू को सीरियलाइज़ और फिर से पार्स करने के बाद, स्टार्ट टैग टोकन के तौर पर समझा जाता है.

स्क्रिप्ट के लिए इंटिग्रिटी नीति

सब-सोर्स इंटिग्रिटी (एसआरआई) की मदद से, डेवलपर यह पक्का कर सकते हैं कि वे जो ऐसेट लोड करना चाहते हैं वे असल में वही ऐसेट हैं. हालांकि, फ़िलहाल डेवलपर के पास यह पक्का करने का कोई तरीका नहीं है कि उनकी सभी स्क्रिप्ट की पुष्टि एसआरआई का इस्तेमाल करके की गई है या नहीं. Integrity-Policy हेडर की मदद से, डेवलपर यह बता सकते हैं कि किसी खास टाइप के हर संसाधन की पूरी जांच की जानी चाहिए. अगर इस तरह के किसी संसाधन को इंटिग्रिटी मेटाडेटा के बिना लोड करने की कोशिश की जाती है, तो वह कोशिश पूरी नहीं होगी और उल्लंघन की रिपोर्ट ट्रिगर हो जाएगी.

अनुमानित स्टोरेज कोटा

उन साइटों के लिए, StorageManager के Estimate API से अनुमानित स्टोरेज कोटा की रिपोर्ट करें जिनके पास अनलिमिटेड स्टोरेज की अनुमतियां नहीं हैं. उपयोगकर्ता के ब्राउज़िंग मोड का पता लगाने के लिए, स्टोरेज कोटा की जानकारी का इस्तेमाल किया जा सकता है. इसकी वजह यह है कि गुप्त मोड में, सामान्य मोड के मुकाबले काफ़ी कम स्टोरेज उपलब्ध होता है.

यह एक ऐसा तरीका है जिससे स्टोरेज एपीआई का इस्तेमाल करके, उपयोगकर्ता के ब्राउज़िंग मोड का पता नहीं लगाया जा सकता. इसके लिए, स्टोरेज की सीमित अनुमतियों वाली साइटों के सभी ब्राउज़िंग मोड में, इस्तेमाल + कम से कम 10 जीबी(डिस्क को 1 जीबी तक राउंड अप किया गया) के बराबर एक कृत्रिम कोटा रिपोर्ट किया जाता है. अनलिमिटेड स्टोरेज की अनुमतियां वाली साइटों पर इसका कोई असर नहीं होगा. लागू किए गए कोटे पर भी इसका कोई असर नहीं पड़ेगा.

फिर से सदस्यता लेने पर pushsubscriptionchange इवेंट

जब किसी ऐसे ऑरिजिन के लिए सूचना पाने की अनुमति फिर से दी जाती है जिसकी पुश सदस्यता पहले मौजूद थी, लेकिन अनुमति में बदलाव (अनुमति देने से अस्वीकार करने/डिफ़ॉल्ट पर सेट करने) की वजह से रद्द कर दी गई थी, तो सर्विस वर्कर में pushsubscriptionchange इवेंट ट्रिगर करें. इवेंट, खाली oldSubscription और newSubscription के साथ ट्रिगर होगा.

अनुमान लगाने के नियम: Clear-Site-Data हेडर में prefetchCache और prerenderCache जोड़ें

Clear-Site-Data हेडर के लिए दो नई वैल्यू जोड़ी गई हैं. इनकी मदद से, डेवलपर, प्री-रेंडर और प्रीफ़ेच कैश मेमोरी को मिटाने के लिए टारगेट कर सकते हैं: prefetchCache और prerenderCache. इन्हें किसी भी अनुरोध पर भेजा जा सकता है. साथ ही, इन्हें दस्तावेज़ के अनुरोध पर भेजने की ज़रूरत नहीं है. उदाहरण के लिए, इन्हें 'बास्केट में जोड़ें' या लॉगिन और लॉग आउट एपीआई कॉल के जवाबों पर भेजा जा सकता है, ताकि स्थिति में हुए बदलाव के बारे में अनुमान लगाया जा सके.

अनुमान लगाने के नियम: target_hint फ़ील्ड

इससे, अनुमान लगाने के नियमों के सिंटैक्स का दायरा बढ़ जाता है, ताकि डेवलपर target_hint फ़ील्ड की जानकारी दे सकें. यह फ़ील्ड, नेविगेट किए जा सकने वाले टारगेट के बारे में जानकारी देता है, जहां पहले से रेंडर किया गया पेज चालू किया जाएगा. जब _blank को संकेत के तौर पर तय किया जाता है, तो window.open() से खोले गए नेविगेट किए जा सकने वाले पेज के लिए, पहले से रेंडर किया गया पेज चालू किया जा सकता है. इस फ़ील्ड के लिए, डेटा को पहले से लोड करने की सुविधा काम नहीं करती.

Storage Access API के लिए, एक ही सोर्स से अनुरोध करने की सख्त नीति

सुरक्षा के लिहाज़ से, एक ही ऑरिजिन की नीति का सख्ती से पालन करने के लिए, Storage Access API के सेमेंटेक्स में बदलाव करता है. इसका मतलब है कि फ़्रेम में document.requestStorageAccess() का इस्तेमाल करने पर, डिफ़ॉल्ट रूप से सिर्फ़ iframe के ऑरिजिन (न कि साइट) के अनुरोधों से कुकी जुड़ती हैं.

Summarizer API

एआई लैंग्वेज मॉडल की मदद से, इनपुट टेक्स्ट की खास जानकारी देने वाला JavaScript API. आने वाले समय में, ब्राउज़र और ऑपरेटिंग सिस्टम के लिए भाषा के मॉडल का ऐक्सेस पाना ज़्यादा आसान हो जाएगा. इस पहले से मौजूद मॉडल को उपलब्ध कराने से, हम हर वेबसाइट को कई गीगाबाइट का अपना भाषा मॉडल डाउनलोड करने या तीसरे पक्ष के एपीआई को इनपुट टेक्स्ट भेजने से बचाते हैं. खास तौर पर, summarizer API एक हाई-लेवल एपीआई को दिखाता है, ताकि भाषा मॉडल के साथ इंटरफ़ेस किया जा सके. इससे, अलग-अलग इस्तेमाल के उदाहरणों के लिए इनपुट की खास जानकारी इस तरह दी जा सकती है कि वह किसी खास भाषा मॉडल पर निर्भर न हो. मॉडल डाउनलोड करने की सुविधा को बंद करने के लिए, एंटरप्राइज़ नीति (GenAILocalFoundationalModelSettings) उपलब्ध है. इससे यह एपीआई उपलब्ध नहीं होगा.

ज़्यादा जानने के लिए, पहले से मौजूद एआई की मदद से खास जानकारी जनरेट करना लेख पढ़ें.

Language Detector API

यह एक JavaScript API है, जो किसी टेक्स्ट में इस्तेमाल की गई भाषा का पता लगाता है. साथ ही, इसकी पुष्टि के लिए कॉन्फ़िडेंस लेवल भी दिखाता है. अनुवाद के लिए, भाषा की पहचान करना ज़रूरी है. इसे Translator API के साथ इस्तेमाल किया जा सकता है. उदाहरण के लिए, उपयोगकर्ता के इनपुट को किसी ऐसी भाषा में लें जिसकी जानकारी आपको न हो. इसके बाद, उसकी भाषा का पता लगाएं और उसे किसी टारगेट भाषा में अनुवाद करें. आम तौर पर, ब्राउज़र में भाषा की पहचान करने की सुविधा पहले से मौजूद होती है. हालांकि, यह सुविधा वेब डेवलपर को JavaScript एपीआई के साथ मिलती है. यह अनुवाद एपीआई के साथ काम करती है.

एंटरप्राइज़ नीति (GenAILocalFoundationalModelSettings) की मदद से, मॉडल को डाउनलोड करने की सुविधा बंद की जा सकती है. ऐसा करने पर, यह एपीआई उपलब्ध नहीं होगा.

ज़्यादा जानने के लिए, पहले से मौजूद एआई की मदद से, यह पता लगाना कि किस भाषा का इस्तेमाल किया गया है लेख पढ़ें.

Translator API

वेब पेजों पर भाषा के अनुवाद की सुविधा देने वाला JavaScript API. ब्राउज़र, अपने उपयोगकर्ताओं को भाषा के अनुवाद की सुविधाएं लगातार उपलब्ध करा रहे हैं. हालांकि, अनुवाद की ऐसी सुविधाएं वेब डेवलपर के लिए भी काम की हो सकती हैं. ऐसा तब होता है, जब ब्राउज़र में पहले से मौजूद अनुवाद की सुविधाएं काम न करें. जैसे, लाइव और इंटरैक्टिव सेवाओं के साथ. मॉडल डाउनलोड करने की सुविधा को बंद करने के लिए, एंटरप्राइज़ नीति (GenAILocalFoundationalModelSettings) उपलब्ध है. इससे यह एपीआई उपलब्ध नहीं होगा.

पहले से मौजूद एआई की मदद से अनुवाद में ज़्यादा जानें.

वेब ऐप्लिकेशन के स्कोप एक्सटेंशन

"scope_extensions" वेब ऐप्लिकेशन के मेनिफ़ेस्ट फ़ील्ड को जोड़ता है. इससे वेब ऐप्लिकेशन, अपने दायरे को दूसरे ऑरिजिन तक बढ़ा सकते हैं. इससे, एक से ज़्यादा सबडोमेन और टॉप लेवल डोमेन को कंट्रोल करने वाली साइटों को एक वेब ऐप्लिकेशन के तौर पर दिखाया जा सकता है. इसके लिए, सूची में शामिल ऑरिजिन को .well-known/web-app-origin-association कॉन्फ़िगरेशन फ़ाइल का इस्तेमाल करके, वेब ऐप्लिकेशन से जुड़ाव की पुष्टि करनी होगी.

Android डिवाइस पर ब्लूटूथ की मदद से वेब सीरियल चलाना

इस सुविधा की मदद से, वेब पेजों और वेब ऐप्लिकेशन को Android डिवाइसों पर, ब्लूटूथ की मदद से सीरियल पोर्ट से कनेक्ट किया जा सकता है. Android पर Chrome, अब ब्लूटूथ RFCOMM के ज़रिए Web Serial API के साथ काम करता है. अन्य प्लैटफ़ॉर्म पर मौजूद एंटरप्राइज़ नीतियां (DefaultSerialGuardSetting, SerialAllowAllPortsForUrls, SerialAllowUsbDevicesForUrls, SerialAskForUrls, और SerialBlockedForUrls), Android के लिए future_on स्टेटस में चालू होती हैं. सुविधा चालू होने के बाद, SerialAllowUsbDevicesForUrls को छोड़कर सभी नीतियां चालू हो जाएंगी. SerialAllowUsbDevicesForUrls की सुविधा, आने वाले समय में लॉन्च होने वाले वर्शन में चालू की जाएगी. इसके लिए, ज़रूरी है कि Android, सिस्टम लेवल पर वायर्ड सीरियल पोर्ट की सुविधा उपलब्ध कराए.

बंद की गई सुविधाएं और हटाए गए आइटम

Chrome के इस वर्शन में, नीचे दिए गए फ़ंक्शन बंद किए जा रहे हैं और हटाए जा रहे हैं. जिन सुविधाओं को बंद किया जा रहा है, उन सुविधाओं की सूची देखने के लिए ChromeStatus.com पर जाएं. साथ ही, उन सुविधाओं की सूची भी देखें जो पहले बंद की जा चुकी हैं.

Chrome के इस वर्शन में दो सुविधाओं को बंद कर दिया गया है.

मीडिया सोर्स एक्सटेंशन के लिए, एसिंक्रोनस रेंज हटाने की सुविधा बंद करना

मीडिया सोर्स स्टैंडर्ड में, एसिंक्रोनस रेंज हटाने के व्यवहार को अस्पष्ट तरीके से तय करने की अनुमति देने के लिए, बहुत पहले बदलाव किया गया था:

  • SourceBuffer.abort() अब SourceBuffer.remove() ऑपरेशन को बंद नहीं करता.
  • MediaSource.duration सेटिंग की मदद से, अब बफ़र किए गए मौजूदा मीडिया को छोटा नहीं किया जा सकता.

अब इन दोनों मामलों में अपवाद दिखाए जाएंगे.

SwiftShader फ़ॉलबैक हटाना

सॉफ़्टवेयर रेंडरर SwiftShader के साथ काम करने वाले WebGL पर अपने-आप फ़ॉलबैक करने की सुविधा अब काम नहीं करती. साथ ही, SwiftShader पर फ़ॉलबैक करने के बजाय, WebGL कॉन्टेक्स्ट बनाने की प्रोसेस पूरी नहीं हो पाएगी. ऐसा दो मुख्य वजहों से किया गया था:

  1. Chromium की GPU प्रोसेस में JIT-ed कोड चलने की वजह से, SwiftShader से सुरक्षा से जुड़ा खतरा ज़्यादा होता है.
  2. जब उपयोगकर्ताओं को बेहतर परफ़ॉर्मेंस देने वाले जीपीयू के साथ काम करने वाले WebGL से, सीपीयू के साथ काम करने वाले WebGL पर स्विच करना पड़ता है, तो उन्हें खराब अनुभव मिलता है. उपयोगकर्ताओं के पास इस व्यवहार को कंट्रोल करने का विकल्प नहीं होता. साथ ही, गड़बड़ी की रिपोर्ट में इसकी जानकारी देना मुश्किल होता है.

बंद होने की अवधि के दौरान, जब कोई वेबजीएल कॉन्टेक्स्ट बनाया जाएगा और उसे SwiftShader के साथ बैकअप किया जाएगा, तब Chrome DevTools के कंसोल में एक चेतावनी दिखेगी. --enable-unsafe-swiftshader को पास करने पर, यह चेतावनी मैसेज हट जाएगा.